#include "SerialControl.h"
#include <vector>
#include <string>
#include <iostream>

// Comment out the duplicate operator<< since it's defined in armControl.cpp
/*
std::ostream& operator<<(std::ostream& os, const std::vector<double>& vec) {
    os << "[";
    for (size_t i = 0; i < vec.size(); ++i) {
        os << vec[i];
        if (i != vec.size() - 1) {
            os << ", ";
        }
    }
    os << "]";
    return os;
}
*/

// Comment out the main function since we'll use the one in armControl.cpp
/*
int main(int argc, char** argv) 
{
    // **************************"写入示例代码"**************************
    std::vector<double> rads = {0.3, 0.3, 0.5, 0.5, 0.5, 0.5};

    SerialControl ser("COM13", 115200, 1000); // 1000ms

    ser.sendCommand(rads, "arm");

    // ser.sendCommand("#026P1300T0800!");


    // **************************"读取示例代码"**************************
    // SerialControl ser("COM13", 115200, 1000);

    // std::vector<double> data = ser.getRadsData("arm");

    // std::cout << "data : " << data << std::endl;

    // return 0;

}
*/





// #include <serial/serial.h>  // 引入 serial 库
// #include <iostream>
// #include <string>
// #include <cstdint>  // 包含 uint8_t 的定义

// int main() {
//     // 配置串口参数
//     std::string portName = "/dev/ttyUSB0";  // 串口设备名称
//     unsigned long baudrate = 115200;        // 波特率
//     int timeout = 1000;                     // 超时时间（毫秒）

//     // 创建串口对象
//     serial::Serial ser(portName, baudrate, serial::Timeout::simpleTimeout(timeout));

//     // 检查串口是否成功打开
//     if (!ser.isOpen()) {
//         std::cerr << "Failed to open serial port: " << portName << std::endl;
//         return -1;
//     }

//     std::cout << "Serial port opened successfully: " << portName << std::endl;

//     // 准备要发送的 ASCII 数据
//     std::string dataToSend = "#021PRAD!";

//     // 发送数据
//     try {
//             // 写入数据
//             ser.write(dataToSend);
//             std::cout << "Sent data: " << dataToSend << std::endl;

//             // 等待设备响应（可选）
//             uint8_t buffer[256];  // 修改为 uint8_t 类型
//             size_t bytesRead = ser.read(buffer, sizeof(buffer));
//             std::cout << "bytess: " << bytesRead << std::endl;
//             if (bytesRead > 0) 
//             {
//                 buffer[bytesRead] = '\0';  // 确保字符串以 null 结尾
//                 std::cout << "Received data: " << std::string(reinterpret_cast<char*>(buffer)) << std::endl;
//             } 
//             else 
//             {
//                 std::cout << "No data received." << std::endl;
//             }
//         } 
//     catch (const serial::IOException& e) 
//     {
//         std::cerr << "Error while sending data: " << e.what() << std::endl;
//     }

//     // 关闭串口
//     ser.close();
//     return 0;
// }